package com.xyy.saas.payment.adpater.jdCredit.req;

import com.jddglobal.open.request.base.JddRequest;
import com.jddglobal.open.support.util.JacksonUtils;
import com.xyy.saas.payment.adpater.jdCredit.resp.SmapiResponse;
import lombok.Data;
import org.apache.http.client.utils.DateUtils;

import java.util.Date;
import java.util.Map;

/**
 * 客户信息推送请求
 *
 * @author yuchengying
 * @date 2023/12/01
 */
@Data
public class PushAccessCustReq implements JddRequest<SmapiResponse> {

    /**
     * 请求编号
     */
    private String reqNo;
    /**
     * 请求时间
     */
    private String reqDate;

    /**
     * 业务申请单号
     */
    private String bizNo;
    /**
     * 产品编号
     */
    private String productCode;
    /**
     * 合作方编号
     */
    private String partnerCode;
    /**
     * 客户编号
     */
    private String custCode;
    /**
     * 客户名称
     */
    private String custName;
    /**
     * 客户类型
     */
    private String custType;
    /**
     * 客户证件类型
     */
    private String custCertType;
    /**
     * 客户证件号码
     */
    private String custCertNo;
    /**
     * 法人名称
     */
    private String legalName;
    /**
     * 法人证件类型
     */
    private String legalCertType;
    /**
     * 法人证件号码
     */
    private String legalCertNo;
    /**
     * 法人电话
     */
    private String legalPhone;
    /**
     * 附件信息
     */
    private Map<String,Object> attachment;
    /**
     * 通知地址
     */
    private String notifyUrl;
    /**
     * 风控要求字段
     */
    private Map<String,Object> riskControlParams;
    /**
     * 风控模盒数据
     */
    private Map<String,Object> riskModelData;
    /**
     * 渠道来源
     */
    private String channelSource;


    @Override
    public String getRequestTime() {
        return DateUtils.formatDate(new Date(), "yyyyMMddHHmmssSSS");
    }

    @Override
    public Class getResponseClass() {
        return SmapiResponse.class;
    }
    @Override
    public String getJsonParams() {
        return JacksonUtils.toJson(this);
    }

    @Override
    public String getApiMethod() {
        return "/smapi/v1/nav/pushAccessCustInfo";
    }
}
